#include<stdio.h>
int main()
{
    char a[3][100];      //当定义每一行的元素有10个时，打到第8个元素，如果再往后打，回车符就会被第二次gets读取，导致第二次读取直接结束，搞不清原理
                        //就将错就错，在定义数组时率先多留空位
    int i;
    int j;
    int big=0;
    int small=0;
    int x=0;
    int y=0;
    int z=0;

    for(i=0;i<3;i++)
    {
        printf("shuru line%d:",i+1);     
        fflush(stdin);        //清空缓存区的代码，感觉没多大用，并没有解决问题
        fgets(a[i],100,stdin);    //fgets的使用格式
        {
        for(j=0;j<100&&a[i][j]!='\n';j++)    //注意 a[i][j]!='\n'   在这里如果不加这个，在统计时，没有赋值的数组位置也会被纳入统计范围
                                            //造成else的不正常增加
            if(a[i][j]>='a'&&a[i][j]<='z')
            {
                small++;
            }
            else if(a[i][j]>='A'&&a[i][j]<='Z')
            {
                big++;
            }
            else if(a[i][j]<='9'&&a[i][j]>='0')
            {
                x++;
            }
            else if(a[i][j]==' ')
            {
                y++;
            }
            else
            {
                z++;
            }
        }
    }
    
 printf("the number of big :%d",big);
 printf("\n");
 printf("the number of small :%d",small);
  printf("\n");
 printf("the number of num:%d",x);
  printf("\n");
 printf("the number of space:%d",y);
  printf("\n");
 printf("the number of else:%d",z);    //能力有限  这整个代码要求你每一行最多输入8个元素，否则fget的循环会出问题
 return 0;
}
 